import {ref, toRefs} from "vue";
import useDictStore from "/src/stores/dict";
import {dictDataApi} from "/@/api/sys/dictData";

/**
 * 获取字典数据
 */
export function useDict(...args) {
    const res = ref({});
    return (() => {
        args.forEach((dictType: String) => {
            res.value[dictType] = [];
            const dicts = useDictStore().getDict(dictType);
            if (dicts) {
                res.value[dictType] = dicts;
            } else {
                dictDataApi()
                    .getDictByType(dictType)
                    .then(resp => {
                        res.value[dictType] = resp.data.map(p => ({
                            label: p.dictLabel,
                            value: p.dictValue,
                            elTagType: p.listClass,
                            elTagClass: p.cssClass
                        }))
                        useDictStore().setDict(dictType, res.value[dictType]);
                    })
            }
        })
        return toRefs(res.value);
    })()
}
